import Vue from 'vue'
import Vuex from 'vuex'
// 1导入axios
import axios from 'axios'

Vue.use(Vuex)

// 1. 导入包
import createPersistedState from 'vuex-persistedstate'

export default new Vuex.Store({
  // 获取本地存储中的token     没有获取到token就给个空字符串
  // 配置持久化插件
  //    只要数据存储到vuex中,就会自动将数据存储数据到vuex中
  plugins: [createPersistedState()],
  // 唯一存储数据的地方
  state: {
    // 先获取本地存储中的token
    token: '',
    userinfo:{}   //5 存储用户信息
  },
  getters: {
  },
  // 唯一同步更新数据的地方
  mutations: {
    // 将token存储到vuex中
    updateToken(state, token) {
      state.token = token
    },
    // 4 更新用户信息
    updateUserInfo(state,info){
      state.userInfo = info
    }
  },
  // 唯一异步获取数据,异步更新的地方
  actions: {
    // 2 发送请求  获取用户信息,存储到vuex中
    async initUserInfo(context) {
      // context.Store的实例对象   context.state.token
      // 2.1 发送请求
      const { data: res } = await axios.get('/my/userinfo')
      // 3 将获取到的数据存储到vuex中
      context.commit('updateUserInfo',res.data)
    }
  },
  modules: {
  }
})

